#include "localStorage.h"

#define EEPROM_WIFI_Name_Addr 10 // WIFI名字的地址
#define EEPROM_WIFI_Key_Addr 40  // WIFI密码的地址
#define EEPROM_Name_Size_Addr 0  // WIFI名字的长度地址
#define EEPROM_Key_Size_Addr 1   // WIFI密码的长度地址

// 串口
const int baudRate = 9600;      // 串口波特率
String inputString = "";        // 存储接收到的数据
boolean stringComplete = false; // 新数据标志位

String WIFI_Name = "adan1";   // WIFI名字
String WIFI_Key = "88888888"; // 密码
// length写入记录字符串长度的地址，addr是字符串的地址，str为要保存的字符串
void Write_String(int len_addr, int addr, String str)
{
 
}

// length位是字符串长度，addr是起始位(字符串首地址)
String Read_String(int len_addr, int addr)
{
  
  return String("");
}
 

void Write_UserAcount(String username)
{
    Write_String(EEPROM_Name_Size_Addr, EEPROM_WIFI_Name_Addr, username);
}

String Read_UserAccount()
{
    String t = Read_String(EEPROM_Name_Size_Addr, EEPROM_WIFI_Name_Addr);
    WIFI_Name.clear();
    for (size_t i = 0; i < t.length(); i++)
    {
        WIFI_Name += t.charAt(i);
    }

    return WIFI_Name;
}

void Write_User_PWD(String username)
{
    Write_String(EEPROM_Key_Size_Addr, EEPROM_WIFI_Key_Addr, username);
}

String Read_User_PWD()
{
    String t = Read_String(EEPROM_Key_Size_Addr, EEPROM_WIFI_Key_Addr);
    WIFI_Key.clear();
    for (size_t i = 0; i < t.length(); i++)
    {
        WIFI_Key += t.charAt(i);
    }

    return WIFI_Key;
}

void loop1233()
{
    if (stringComplete)
    {
        Serial.print("收到数据: ");
        Serial.println(inputString); // 因为有换行符，所以会比你输入的多一个数据，也就是你输入八个数据，实际会加一个'\n'
        if (inputString.length() > 8)
        {
            WIFI_Key = inputString;
            Write_String(EEPROM_Key_Size_Addr, EEPROM_WIFI_Key_Addr, WIFI_Key);
        }
        Serial.print("key:");
        Serial.print(WIFI_Key);
        Serial.print("  length:");
        Serial.println(inputString.length() - 1);

        inputString = "";
        stringComplete = false;
    }
}

// 串口接收中断
void serialEvent()
{
    while (Serial.available())
    {
        char inChar = (char)Serial.read();
        inputString += inChar;

        if (inChar == '\n')
        {
            stringComplete = true;
        }
    }
}
